Workload 允許非 BCL 核心組件(如 Android / iOS / WebAssembly / MAUI)以宣告式清單 (manifest) 提供。流程:
dotnet workload search:列出版 manifest 資訊dotnet workload install wasm-tools:下載對應 pack (nuget nupkg)metadata/workloads/ 註冊關鍵碼:src/WorkloadManifestReader/、src/Cli/dotnet/commands/dotnet-workload-*。
| 功能 | 入口屬性 | 主要功能 | 說明 | 
|---|---|---|---|
| Trim | PublishTrimmed=true | ILLink | 移除未使用 IL,需保留反射根(DynamicDependency / rd.xml) | 
| Native AOT | PublishAot=true | crossgen2 + runtime pack | 產生原生可執行,減少啟動與記憶體 | 
| ReadyToRun | PublishReadyToRun=true | crossgen2 R2R | 預先編譯常用方法 IL->Native | 
| PGO | TieredPGO/DynamicPgo | CLR JIT / profile data | 10 版起更廣泛預設啟用(視平台) | 
整合節點:Targets 準備參數 -> Task 呼叫工具 -> 更新 deps 清單與最終輸出。
| 變數 | 作用 | 
|---|---|
| DOTNET_CLI_UI_LANGUAGE | 強制 CLI 語系 | 
| DOTNET_CLI_TELEMETRY_OPTOUT | 關閉遙測 | 
| DOTNET_MSBUILD_SDK_RESOLVER_SDKS_DIR | 覆寫 SDK 搜尋路徑 | 
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE | 跳過初次使用快取/歡迎行為 | 
| DOTNET_NOLOGO | 隱藏歡迎標頭 | 
| DOTNET_ROLL_FORWARD | SDK / Runtime roll-forward 策略 | 
| DOTNET_CLI_DISABLE_FILE_BASED_APP_ARTIFACTS_AUTOMATIC_CLEANUP | 停用單檔模式自動清理 | 
| NUGET_PACKAGES | NuGet 全域快取位置 | 
###流程
src/Cli/dotnet/Program.cs 進入,看如何組裝命令與解析參數。RunCommand / BuildCommand -> 學會如何組裝 MSBuild Invocation。src/Tasks/ 看一個具體 Task(例如 GenerateDepsFile)。artifacts/bin/Microsoft.NET.Build.Tasks/<Configuration>/ 觀察編譯輸出。WorkloadManifestReader 與 SdkResolver 判斷流程。Sdk.targets / Sdk.props 全貌,理解 Lifecycle。